home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / DRIVES.SWG / 0053_Getting Drive INFO.pas < prev    next >
Pascal/Delphi Source File  |  1993-11-02  |  1KB  |  63 lines

  1. {
  2. ERIC GIVLER
  3.  
  4. > about, evidentally), are two different things.  The serial
  5. > number is only accessible in Dos v4.0+, and (I think), you
  6. > have to use the FCBs to get it.
  7.  
  8. No, no FCBs, see:
  9. }
  10.  
  11. Uses
  12.   Dos,
  13.   Crt;
  14.  
  15. Type
  16.   MIDRecord = Record
  17.     InfoLevel : Word;
  18.     SerialNum : LongInt;   {This is the serial number...}
  19.     VolLabel  : Array [1..11] of Char;
  20.     FatType   : Array [1..8] of Char;
  21.   end;
  22.  
  23. Function Label_Fat(Var Mid : MidRecord; Drive : Word) : Boolean;
  24. Var
  25.   Result : Word;
  26.   Regs   : Registers;
  27. begin
  28.   FillChar(Mid,SizeOf(Mid),0);
  29.   FillChar(Regs,SizeOf(Regs),0);
  30.   With Regs DO
  31.   begin
  32.     AX := $440D;
  33.     BX := Drive;
  34.     CX := $0866;
  35.     DS := Seg(Mid);
  36.     DX := Ofs(Mid);
  37.     Intr($21,Regs);
  38.     Case AX of
  39.       $01 : Label_Fat := False;
  40.       $02 : Label_Fat := False;
  41.       $05 : Label_Fat := False;
  42.       else
  43.         Label_Fat := True;
  44.     end;
  45.   end;
  46. end;
  47.  
  48. Var
  49.   Mid : MidRecord;
  50. begin
  51.   ClrScr;
  52.   if Label_Fat(Mid,0) Then
  53.   With Mid DO
  54.   begin
  55.     Writeln(SerialNum);
  56.     Writeln(VolLabel);
  57.     Writeln(FatType);
  58.   end
  59.   else
  60.     Writeln('Error Occured');
  61. end.
  62.  
  63.